using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Net;

namespace Krilib.Bridges
{
    public interface IConfig
    {
        /// <summary>
        /// Web proxy
        /// </summary>
        IWebProxy Proxy { get;}

        /// <summary>
        /// Timeout of web connection
        /// </summary>
        int Timeout { get;}

        /// <summary>
        /// System default font
        /// </summary>
        Font Font { get;}

        /// <summary>
        /// Foreground text color
        /// </summary>
        Color ForeColor { get;}

        /// <summary>
        /// Secondary foreground text color
        /// </summary>
        Color ForeSecondaryColor { get; }

        /// <summary>
        /// Link label foreground text color
        /// </summary>
        Color LinkColor { get;}

        /// <summary>
        /// Current status foreground text color
        /// </summary>
        Color CurrentStatusForeColor { get;}

        /// <summary>
        /// Image interpolation mode
        /// </summary>
        System.Drawing.Drawing2D.InterpolationMode ImageInterpolation { get;}

        /// <summary>
        /// Drawing margin
        /// </summary>
        int DrawMargin { get;}

        /// <summary>
        /// Use gzip compression with download some material
        /// </summary>
        bool UseGZip { get;}

        /// <summary>
        /// Default user-agent string
        /// </summary>
        string DefaultUserAgent { get; }

        /// <summary>
        /// Plugin directory path
        /// </summary>
        string PluginPath { get; }

        /// <summary>
        /// Application Name
        /// </summary>
        string AppName { get; }

        /// <summary>
        /// Image max size
        /// </summary>
        Size ImageDefaultMaxSize { get; }
    }
}
